Low power and Lossy Networks (LLNs), e.g., sensor networks, have a myriad of applications, such as Smart Grid and Smart Cities. Various challenges are presented with LLNs, such as lossy links, low bandwidth, battery operation, low memory and/or processing capability, etc. One example routing solution to LLN challenges is a protocol called Routing Protocol for LLNs or “RPL,” which is a distance vector routing protocol that builds a Destination Oriented Directed Acyclic Graph (DODAG, or simply DAG) in addition to a set of features to bound the control traffic, support local (and slow) repair, etc. The RPL architecture provides a flexible method by which each node performs DODAG discovery, construction, and maintenance.
One significant challenge with routing in LLNs is ensuring that links to neighboring nodes are valid. More traditional IP networks typically use a proactive keepalive mechanism with a relatively short period, such as the Bidirectional Forwarding Detection (BFD) protocol. Due to the strict resource constraints of LLNs, protocols such as RPL do not rely on proactive keepalive mechanisms. Instead, many LLN protocols typically take a reactive approach, using link-layer acknowledgments and/or IPv6 Neighbor Unreachability Detection (NUD) to update link statistics when forwarding traffic.
One fundamental problem is that nodes in many LLNs only maintain links in the UPWARD direction (toward a root node), and detect link failures reactively when sending a data packet. If a node has no data packets to send, it will not detect the link failure and will not notify the root that the link is no longer valid. As a result, the root will continue to send traffic down an invalid path.